package main

/**
go tool pprof 工具：分析CPU、内存分配、Heap、goroutine快照等
go tool trace 工具：分析goroutine调度、网络IO阻塞、同步阻塞等

pprof:
runtime/pprof  非http服务耗时统计
cpu: 调用pprof.StartCPUProfile、pprof.StopCPUProfile导致文件
memory: pprof.WriteHeapProfile导出此刻的内存快照

http pprof:
暴露/debug/pprof端点
/debug/pprof
/debug/pprof/profile
/debug/pprof/heap
/debug/pprof/allocs
/debug/pprof/goroutine
/debug/pprof/trace

go-torch: 将cpu profile  堆内存  goroutine等转为svg文件，在浏览器端查看火焰图
安装：
1  安装FlameGraph:
git clone https://github.com/brendangregg/FlameGraph.git
cp flamegraph.pl /usr/local/bin

2  安装go-torch
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io,direct
go get -v github.com/uber/go-torch

3 go-torch使用
CPU分析：
go-torch -u http://ip:port -t seconds -p > cpu.svg
内存分析：
go-torch -inuse_space http://ip:port/debug/pprof/heap --colors=mem -p >mem.svg
go-torch -alloc_space http://ip:port/debug/pprof/heap --colors=mem -p mem.svg

-u 默认使用go tool pprof分析CPU
-inuse_space  -alloc_space  分析内存，访问/debug/pprof/heap端点
浏览器打开svg图片，查看火焰图
*/

/**
trace
*/
func main() {
	Server1()

	//Server2()
}
